Colegio Universitario de Cartago¶

Análisis y Predicción del Turismo en Costa Rica¶

Realizado por:¶

Wedell Orozco González y Gilary Granados Calvo¶

Incluye análisis exploratorio y visualizaciones previas al modelado.Este proyecto busca analizar el comportamiento del turismo en Costa Rica y predecir la cantidad de visitantes anual o mensual, considerando factores como el clima, el país de origen de los turistas y eventos relevantes.¶

In [1]:
import pandas as pd
from src.datos.gestorDatos import GestorDatos
from src.api.api_Open import ClienteAPI
from src.basedatos.gestorBaseDatos import GestorBaseDatos
from src.eda.eda_exploracion import ProcesadorEDA
from src.visualizacion.graficos import Visualizador
from src.helpers.utilidades import Utilidades
from src.modelos.ModeloML import ModeloML

Pruebas iniciales / Fuentes de Datos¶

Implementando\Usando clase GestorDatos para la lectura del excel en la hoja "Llegadas"¶
In [3]:
data_turismo_llegadas = GestorDatos(r"D:\Proyecto_Turismo\data\processed\data_turismo.xlsx")
data_turismo_llegadas.cargar_hoja("Llegadas")
print(data_turismo_llegadas.datos.head())
Hoja 'Llegadas' cargada correctamente.
    Año  Llegadas_internacionales
0  1951                     20225
1  1952                     23441
2  1953                     23344
3  1954                     19387
4  1955                     21637
Implementando\Usando clase GestorDatos para la lectura del excel en la hoja "Todas_vias"¶
In [4]:
data_turismo_Tvias = GestorDatos(r"D:\Proyecto_Turismo\data\processed\data_turismo.xlsx")
data_turismo_Tvias.cargar_hoja("Todas_vias")
print(data_turismo_Tvias.datos.head())
Hoja 'Todas_vias' cargada correctamente.
            Pais     2017     2018     2019    2020    2021     2022     2023  \
0         Canadá   201921   217006   234621  115632   53185   183678   260744   
1  EstadosUnidos  1199241  1265067  1334777  434775  868986  1290038  1473620   
2         México   106783    98918    97173   20603   36621    59786    85674   
3         Belice      970      964     1103     203     274      517      782   
4     ElSalvador    81091    76937    78948   20898   12300    28173    31849   

      2024  
0   272256  
1  1621340  
2    96129  
3      720  
4    28258  
Implementando\Usando clase GestorDatos para la lectura del excel en la hoja "Todas_vias_mes"¶
In [5]:
data_turismo = GestorDatos(r"D:\Proyecto_Turismo\data\processed\data_turismo.xlsx")
data_turismo.cargar_hoja("Todas_vias_mes")
print(data_turismo.datos.head())
Hoja 'Todas_vias_mes' cargada correctamente.
       Mes    2012    2013    2014    2015    2016    2017    2018    2019  \
0    Enero  272718  278426  297935  292555  326227  325712  336894  355321   
1  Febrero  228597  230581  247182  253329  287090  289723  303606  312774   
2    Marzo  239386  249828  257320  265495  306307  304196  328688  335558   
3    Abril  195456  197034  213458  221141  233402  266671  260366  262016   
4     Mayo  160185  168294  176412  180102  204565  208584  206930  211598   

     2020   2021    2022    2023    2024  
0  358665  62200  188200  272444  299194  
1  341008  55252  200164  278296  317830  
2  162994  89263  243245  293555  350300  
3    8342  89284  213714  236611  242511  
4    3803  95854  176237  187399  216702  
Consulta de prueba para la clase ClienteAPI¶
In [5]:
consl= ClienteAPI("https://archive-api.open-meteo.com/v1/era5")
print(consl.consultar_clima("9.93","84.08","2020-01-01","2020-01-02","temperature_2m_max,precipitation_sum","America/Costa_Rica"))
{'latitude': 9.947276, 'longitude': 84.09449, 'generationtime_ms': 44.79789733886719, 'utc_offset_seconds': -21600, 'timezone': 'America/Costa_Rica', 'timezone_abbreviation': 'GMT-6', 'elevation': 0.0, 'daily_units': {'time': 'iso8601', 'temperature_2m_max': '°C', 'precipitation_sum': 'mm'}, 'daily': {'time': ['2020-01-01', '2020-01-02'], 'temperature_2m_max': [28.2, 27.9], 'precipitation_sum': [0.3, 1.4]}}
Utilizando SQL Server y la clase GestorBaseDatos para agregar datos a tabla sql desde un excel "Llegadas"¶
In [6]:
db_turismo_llegadas = GestorBaseDatos("LAPTOP-DCQFQTCG\SQLEXPRESS","Turismo","sa","progra")
db_turismo_llegadas.insertar_data("Llegadas",data_turismo_llegadas.datos)
db_turismo_llegadas.cerrar_conexion()
<>:1: SyntaxWarning: invalid escape sequence '\S'
<>:1: SyntaxWarning: invalid escape sequence '\S'
C:\Users\woroz\AppData\Local\Temp\ipykernel_6092\3398070820.py:1: SyntaxWarning: invalid escape sequence '\S'
  db_turismo_llegadas = GestorBaseDatos("LAPTOP-DCQFQTCG\SQLEXPRESS","Turismo","sa","progra")
Conexión a SQL Server establecida correctamente.
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Consulta SQL generada: INSERT INTO Llegadas ([Año], [Llegadas_internacionales]) VALUES (?, ?)
Datos insertados correctamente en la tabla Llegadas.
Conexión cerrada correctamente.

No description has been provided for this image

No description has been provided for this image

Utilizando SQL Server y la clase GestorBaseDatos para agregar datos a tabla sql desde un excel "Todas_vias"¶
In [7]:
db_turismo_Tvias = GestorBaseDatos("LAPTOP-DCQFQTCG\SQLEXPRESS","Turismo","sa","progra")
db_turismo_Tvias.insertar_data("Todas_vias",data_turismo_Tvias.datos)
db_turismo_Tvias.cerrar_conexion()
Conexión a SQL Server establecida correctamente.
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias ([Pais], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Datos insertados correctamente en la tabla Todas_vias.
Conexión cerrada correctamente.
<>:1: SyntaxWarning: invalid escape sequence '\S'
<>:1: SyntaxWarning: invalid escape sequence '\S'
C:\Users\woroz\AppData\Local\Temp\ipykernel_6092\3972715633.py:1: SyntaxWarning: invalid escape sequence '\S'
  db_turismo_Tvias = GestorBaseDatos("LAPTOP-DCQFQTCG\SQLEXPRESS","Turismo","sa","progra")

No description has been provided for this image

No description has been provided for this image

Utilizando SQL Server y la clase GestorBaseDatos para agregar datos a tabla sql desde un excel "Todas_vias_mes"¶
In [8]:
db_turismo = GestorBaseDatos("LAPTOP-DCQFQTCG\SQLEXPRESS","Turismo","sa","progra")
db_turismo.insertar_data("Todas_vias_mes",data_turismo.datos)
db_turismo.cerrar_conexion()
Conexión a SQL Server establecida correctamente.
Consulta SQL generada: INSERT INTO Todas_vias_mes ([Mes], [2012], [2013], [2014], [2015], [2016], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias_mes ([Mes], [2012], [2013], [2014], [2015], [2016], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias_mes ([Mes], [2012], [2013], [2014], [2015], [2016], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias_mes ([Mes], [2012], [2013], [2014], [2015], [2016], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias_mes ([Mes], [2012], [2013], [2014], [2015], [2016], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias_mes ([Mes], [2012], [2013], [2014], [2015], [2016], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias_mes ([Mes], [2012], [2013], [2014], [2015], [2016], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias_mes ([Mes], [2012], [2013], [2014], [2015], [2016], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias_mes ([Mes], [2012], [2013], [2014], [2015], [2016], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias_mes ([Mes], [2012], [2013], [2014], [2015], [2016], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias_mes ([Mes], [2012], [2013], [2014], [2015], [2016], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Consulta SQL generada: INSERT INTO Todas_vias_mes ([Mes], [2012], [2013], [2014], [2015], [2016], [2017], [2018], [2019], [2020], [2021], [2022], [2023], [2024]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Datos insertados correctamente en la tabla Todas_vias_mes.
Conexión cerrada correctamente.
<>:1: SyntaxWarning: invalid escape sequence '\S'
<>:1: SyntaxWarning: invalid escape sequence '\S'
C:\Users\woroz\AppData\Local\Temp\ipykernel_6092\2829672258.py:1: SyntaxWarning: invalid escape sequence '\S'
  db_turismo = GestorBaseDatos("LAPTOP-DCQFQTCG\SQLEXPRESS","Turismo","sa","progra")

No description has been provided for this image

No description has been provided for this image

EDA y Visualización¶

In [9]:
data_Tvias = Utilidades(data_turismo_Tvias.datos)
modf_Tvias = data_Tvias.transformar_columnas_a_filas("Pais","Año","Cantidad de turistas")
print(modf_Tvias.head())
            Pais   Año  Cantidad de turistas
0         Canadá  2017                201921
1  EstadosUnidos  2017               1199241
2         México  2017                106783
3         Belice  2017                   970
4     ElSalvador  2017                 81091
In [10]:
graf_Tvias = Visualizador(modf_Tvias)
graf_Tvias.grafico_barras_horizontal(
    columna_x="Cantidad de turistas",
    columna_y="Pais",
    columna_categoria="Año",
    titulo_x="Cantidad de turistas",
    titulo_y="Pais",
    titulo="Distribución de turistas por país y año"
)

Visualizacion llegadas internacionales¶

In [11]:
turismo_graf = Visualizador(data_turismo_llegadas.datos)
turismo_distr = turismo_graf.grafico_barras("Año","Llegadas_internacionales","Años","Llegadas Internacionales","Distribución de Llegadas Internacionales a Costa Rica(1951-2024)")

Visualización de tendencias de llegada según el clima en el año 2020.¶

In [12]:
# Extraer los datos relevantes de la respuesta
consult2020= ClienteAPI("https://archive-api.open-meteo.com/v1/era5")
result_2020=consult2020.consultar_clima("9.93","84.08","2020-01-01","2020-12-31","temperature_2m_max,precipitation_sum","America/Costa_Rica")

#Extracion de datos necesarios
datos_diarios_2020 = result_2020["daily"]

# Creacion DF
df_clima_2020 = pd.DataFrame(datos_diarios_2020)
print(df_clima_2020.head())
         time  temperature_2m_max  precipitation_sum
0  2020-01-01                28.2                0.3
1  2020-01-02                27.9                1.4
2  2020-01-03                28.1                0.2
3  2020-01-04                27.9                0.3
4  2020-01-05                27.8                0.4
In [13]:
#DF clima2020
df_clima_2020 = ProcesadorEDA(df_clima_2020)
clima_2020=df_clima_2020.pr2_formato_mean_mes("time",["temperature_2m_max", "precipitation_sum"])
print(clima_2020)
Promedios calculados correctamente.
           Mes  temperature_2m_max  precipitation_sum
0        Enero           27.474194           0.406452
1      Febrero           27.241379           0.286207
2        Marzo           27.874194           0.058065
3        Abril           29.303333           0.493333
4         Mayo           29.958065           5.496774
5        Junio           29.603333           3.596667
6        Julio           29.116129           6.948387
7       Agosto           29.038710           1.167742
8   Septiembre           28.820000           8.443333
9      Octubre           28.670968           2.548387
10   Noviembre           28.063333          14.403333
11   Diciembre           27.461290          13.403226
In [14]:
#Union de df
data_turismo20 = data_turismo.datos[["Mes", "2020"]]
print(data_turismo20)
          Mes    2020
0       Enero  358665
1     Febrero  341008
2       Marzo  162994
3       Abril    8342
4        Mayo    3803
5       Junio    7210
6       Julio    1022
7      Agosto    2357
8   Setiembre    3817
9     Octubre   10147
10  Noviembre   37573
11  Diciembre   74974
In [15]:
union_2020 = ProcesadorEDA(clima_2020)
df_2020 = union_2020.combinar_columnas(data_turismo20,["Mes","temperature_2m_max", "precipitation_sum"],["Mes","2020"])
print(df_2020.head(20))
Columnas combinadas correctamente.
          Mes  temperature_2m_max  precipitation_sum    2020
0       Enero           27.474194           0.406452  358665
1     Febrero           27.241379           0.286207  341008
2       Marzo           27.874194           0.058065  162994
3       Abril           29.303333           0.493333    8342
4        Mayo           29.958065           5.496774    3803
5       Junio           29.603333           3.596667    7210
6       Julio           29.116129           6.948387    1022
7      Agosto           29.038710           1.167742    2357
8     Octubre           28.670968           2.548387   10147
9   Noviembre           28.063333          14.403333   37573
10  Diciembre           27.461290          13.403226   74974
In [16]:
#Grafico
visualizador = Visualizador(df_2020)
visualizador.pr2_grafico_clima(
    columna_x="Mes",
    titulo_x="Meses",
    columna_y1="2020",
    titulo_y1="Llegadas Turísticas",
    columna_y2="precipitation_sum",
    titulo_y2="Precipitación (mm)",
    columna_y3="temperature_2m_max",
    titulo_y3="Temperatura Máxima (°C)",
    titulo="Relación Clima y Llegadas Turísticas en 2020"
)
No description has been provided for this image

Visualización de tendencias de llegada según el clima en el año 2021¶

In [17]:
# Extraer los datos relevantes de la respuesta
consult2021= ClienteAPI("https://archive-api.open-meteo.com/v1/era5")
result_2021=consult2021.consultar_clima("9.93","84.08","2021-01-01","2021-12-31","temperature_2m_max,precipitation_sum","America/Costa_Rica")

#Extracion de datos necesarios
datos_diarios_2021 = result_2021["daily"]

# Creacion DF
df_clima_2021 = pd.DataFrame(datos_diarios_2021)
print(df_clima_2021.head())
         time  temperature_2m_max  precipitation_sum
0  2021-01-01                27.5                1.8
1  2021-01-02                27.6                1.7
2  2021-01-03                27.9                7.9
3  2021-01-04                27.0               25.2
4  2021-01-05                28.0                3.8
In [18]:
#DF clima2021
df_clima_2021 = ProcesadorEDA(df_clima_2021)
clima_2021=df_clima_2021.pr2_formato_mean_mes("time",["temperature_2m_max", "precipitation_sum"])#metodo
print(clima_2021)
Promedios calculados correctamente.
           Mes  temperature_2m_max  precipitation_sum
0        Enero           27.325806           7.116129
1      Febrero           26.889286           1.525000
2        Marzo           28.235484           0.277419
3        Abril           28.990000           1.876667
4         Mayo           29.796774           4.396774
5        Junio           29.543333           2.016667
6        Julio           29.206452           3.054839
7       Agosto           28.929032           3.929032
8   Septiembre           28.793333           5.083333
9      Octubre           28.522581          10.783871
10   Noviembre           27.943333          13.240000
11   Diciembre           28.287097           2.145161
In [19]:
#Union de df
data_turismo21 = data_turismo.datos[["Mes", "2021"]]
print(data_turismo21)
          Mes    2021
0       Enero   62200
1     Febrero   55252
2       Marzo   89263
3       Abril   89284
4        Mayo   95854
5       Junio  124670
6       Julio  154706
7      Agosto  122162
8   Setiembre   85183
9     Octubre  100102
10  Noviembre  151701
11  Diciembre  216678
In [20]:
union_2021 = ProcesadorEDA(clima_2021)
df_2021 = union_2021.combinar_columnas(data_turismo21,["Mes","temperature_2m_max", "precipitation_sum"],["Mes","2021"])
print(df_2021.head(20))
Columnas combinadas correctamente.
          Mes  temperature_2m_max  precipitation_sum    2021
0       Enero           27.325806           7.116129   62200
1     Febrero           26.889286           1.525000   55252
2       Marzo           28.235484           0.277419   89263
3       Abril           28.990000           1.876667   89284
4        Mayo           29.796774           4.396774   95854
5       Junio           29.543333           2.016667  124670
6       Julio           29.206452           3.054839  154706
7      Agosto           28.929032           3.929032  122162
8     Octubre           28.522581          10.783871  100102
9   Noviembre           27.943333          13.240000  151701
10  Diciembre           28.287097           2.145161  216678
In [21]:
#Grafico
visualizador = Visualizador(df_2021)
visualizador.pr2_grafico_clima(
    columna_x="Mes",
    titulo_x="Meses",
    columna_y1="2021",
    titulo_y1="Llegadas Turísticas",
    columna_y2="precipitation_sum",
    titulo_y2="Precipitación (mm)",
    columna_y3="temperature_2m_max",
    titulo_y3="Temperatura Máxima (°C)",
    titulo="Relación Clima y Llegadas Turísticas en 2021"
)
No description has been provided for this image

Visualización de tendencias de llegada según el clima en el año 2019¶

In [22]:
# Extraer los datos relevantes de la respuesta
consult2019= ClienteAPI("https://archive-api.open-meteo.com/v1/era5")
result_2019=consult2019.consultar_clima("9.93","84.08","2019-01-01","2019-12-31","temperature_2m_max,precipitation_sum","America/Costa_Rica")

#Extracion de datos necesarios
datos_diarios_2019 = result_2019["daily"]

# Creacion DF
df_clima_2019 = pd.DataFrame(datos_diarios_2019)
print(df_clima_2019.head())
         time  temperature_2m_max  precipitation_sum
0  2019-01-01                26.9                0.0
1  2019-01-02                27.5                0.0
2  2019-01-03                27.2                0.0
3  2019-01-04                26.7                0.8
4  2019-01-05                26.9                0.0
In [23]:
#DF clima2021
df_clima_2019 = ProcesadorEDA(df_clima_2019)
clima_2019=df_clima_2019.pr2_formato_mean_mes("time",["temperature_2m_max", "precipitation_sum"])
print(clima_2019)
Promedios calculados correctamente.
           Mes  temperature_2m_max  precipitation_sum
0        Enero           27.180645           0.983871
1      Febrero           27.410714           0.535714
2        Marzo           28.332258           0.029032
3        Abril           29.650000           1.446667
4         Mayo           29.751613           0.693548
5        Junio           29.656667           3.100000
6        Julio           29.003226           3.377419
7       Agosto           28.754839           3.706452
8   Septiembre           28.263333           5.533333
9      Octubre           28.187097          10.232258
10   Noviembre           28.553333           4.460000
11   Diciembre           27.783871           3.103226
In [24]:
#Union de df
data_turismo19 = data_turismo.datos[["Mes", "2019"]]
print(data_turismo19)
          Mes    2019
0       Enero  355321
1     Febrero  312774
2       Marzo  335558
3       Abril  262016
4        Mayo  211598
5       Junio  248696
6       Julio  269376
7      Agosto  225299
8   Setiembre  160206
9     Octubre  185599
10  Noviembre  245643
11  Diciembre  326922
In [25]:
union_2019 = ProcesadorEDA(clima_2019)
df_2019 = union_2019.combinar_columnas(data_turismo19,["Mes","temperature_2m_max", "precipitation_sum"],["Mes","2019"])
print(df_2019.head(20))
Columnas combinadas correctamente.
          Mes  temperature_2m_max  precipitation_sum    2019
0       Enero           27.180645           0.983871  355321
1     Febrero           27.410714           0.535714  312774
2       Marzo           28.332258           0.029032  335558
3       Abril           29.650000           1.446667  262016
4        Mayo           29.751613           0.693548  211598
5       Junio           29.656667           3.100000  248696
6       Julio           29.003226           3.377419  269376
7      Agosto           28.754839           3.706452  225299
8     Octubre           28.187097          10.232258  185599
9   Noviembre           28.553333           4.460000  245643
10  Diciembre           27.783871           3.103226  326922
In [26]:
#Grafico
visualizador = Visualizador(df_2019)
visualizador.pr2_grafico_clima(
    columna_x="Mes",
    titulo_x="Meses",
    columna_y1="2019",
    titulo_y1="Llegadas Turísticas",
    columna_y2="precipitation_sum",
    titulo_y2="Precipitación (mm)",
    columna_y3="temperature_2m_max",
    titulo_y3="Temperatura Máxima (°C)",
    titulo="Relación Clima y Llegadas Turísticas en 2019"
)
No description has been provided for this image

Mapa regiones de origen y destino(Costa Rica).¶

In [6]:
# Exclusion de registros
data_tur = ProcesadorEDA(data_turismo_Tvias.datos)
paises_cr = data_tur.excluir_registros("Pais",["OtrosEuropa","OTRASZONAS2","OtrosCaribe"])
print(paises_cr["Pais"].unique())
Registros excluidos correctamente.
['Canadá' 'EstadosUnidos' 'México' 'Belice' 'ElSalvador' 'Guatemala'
 'Honduras' 'Nicaragua' 'Panamá' 'Argentina' 'Bolivia' 'Brasil' 'Chile'
 'Colombia' 'Ecuador' 'Guyana' 'GuyanaFrancesa' 'Paraguay' 'Perú'
 'Surinam' 'Uruguay' 'Venezuela' 'Bahamas' 'Bermuda' 'Cuba' 'Haití'
 'Jamaica' 'PuertoRico1' 'RepúblicaDominicana' 'TrinidadyTobago'
 'Alemania' 'Austria' 'Bélgica' 'Dinamarca' 'Eslovaquia' 'España'
 'Finlandia' 'Francia' 'Hungría' 'Irlanda' 'Israel' 'Italia' 'Noruega'
 'PaísesBajos' 'Polonia' 'Portugal' 'ReinoUnido' 'RepublicaCheca'
 'Rumanía' 'Rusia' 'Suecia' 'Suiza']
In [7]:
traducciones = {
    "EstadosUnidos": "United States",
    "GuyanaFrancesa": "French Guiana",
    "PuertoRico1": "Puerto Rico",
    "RepúblicaDominicana": "Dominican Republic",
    "TrinidadyTobago": "Trinidad and Tobago",
    "PaísesBajos": "Netherlands",
    "ReinoUnido": "United Kingdom",
    "RepublicaCheca": "Czech Republic",
    "ElSalvador": "El Salvador"
}

# Aplicación de las traducciones
paises_cr["Pais"].replace(traducciones, inplace=True)

# Clase ClienteAPI URL base
cliente = ClienteAPI("https://geocode.maps.co")

# Creación de lista con solo los paises
paises = paises_cr["Pais"].tolist()

# Uso de la API para obtener coordenadas
df_coordenadas = cliente.obtener_coordenadas(paises)

# Df con el pais y sus coordenadas
print(df_coordenadas.head())
C:\Users\woroz\AppData\Local\Temp\ipykernel_15212\2430461933.py:14: FutureWarning: A value is trying to be set on a copy of a DataFrame or Series through chained assignment using an inplace method.
The behavior will change in pandas 3.0. This inplace method will never work because the intermediate object on which we are setting values always behaves as a copy.

For example, when doing 'df[col].method(value, inplace=True)', try using 'df.method({col: value}, inplace=True)' or df[col] = df[col].method(value) instead, to perform the operation inplace on the original object.


  paises_cr["Pais"].replace(traducciones, inplace=True)
C:\Users\woroz\AppData\Local\Temp\ipykernel_15212\2430461933.py:14: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame

See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
  paises_cr["Pais"].replace(traducciones, inplace=True)
Procesando país 1/52: Canadá
Procesando país 2/52: United States
Procesando país 3/52: México
Procesando país 4/52: Belice
Procesando país 5/52: El Salvador
Procesando país 6/52: Guatemala
Procesando país 7/52: Honduras
Procesando país 8/52: Nicaragua
Procesando país 9/52: Panamá
Procesando país 10/52: Argentina
Procesando país 11/52: Bolivia
Procesando país 12/52: Brasil
Procesando país 13/52: Chile
Procesando país 14/52: Colombia
Procesando país 15/52: Ecuador
Procesando país 16/52: Guyana
Procesando país 17/52: French Guiana
Procesando país 18/52: Paraguay
Procesando país 19/52: Perú
Procesando país 20/52: Surinam
Procesando país 21/52: Uruguay
Procesando país 22/52: Venezuela
Procesando país 23/52: Bahamas
Procesando país 24/52: Bermuda
Procesando país 25/52: Cuba
Procesando país 26/52: Haití
Procesando país 27/52: Jamaica
Procesando país 28/52: Puerto Rico
Procesando país 29/52: Dominican Republic
Procesando país 30/52: Trinidad and Tobago
Procesando país 31/52: Alemania
Procesando país 32/52: Austria
Procesando país 33/52: Bélgica
Procesando país 34/52: Dinamarca
Procesando país 35/52: Eslovaquia
Procesando país 36/52: España
Procesando país 37/52: Finlandia
Procesando país 38/52: Francia
Procesando país 39/52: Hungría
Procesando país 40/52: Irlanda
Procesando país 41/52: Israel
Procesando país 42/52: Italia
Procesando país 43/52: Noruega
Procesando país 44/52: Netherlands
Procesando país 45/52: Polonia
Procesando país 46/52: Portugal
Procesando país 47/52: United Kingdom
Procesando país 48/52: Czech Republic
Procesando país 49/52: Rumanía
Procesando país 50/52: Rusia
Procesando país 51/52: Suecia
Procesando país 52/52: Suiza
            País    Latitud    Longitud
0         Canadá  61.066692 -107.991707
1  United States  39.783730 -100.445882
2         México  19.432630  -99.133178
3         Belice  17.120494  -88.685903
4    El Salvador  13.800038  -88.914068
In [29]:
 # Grafico (mapa interactivo)
visualizador = Visualizador(df_coordenadas)
visualizador.pr3_mapa_interactivo()
In [8]:
visualizador02 = Visualizador(df_coordenadas)
visualizador02.pr3_mapa_interactivo_02()
Make this Notebook Trusted to load map: File -> Trust Notebook

Modelos Supervisados¶

Algoritmo de Regresión Lineal¶

In [31]:
modelo = ModeloML(data_turismo_Tvias)
modelo.entrenar_modelo(tipo="lineal")
modelo.graficar("Predicción de turistas por país (Regresión Lineal)")
D:\Proyecto_Turismo_Final\src\modelos\ModeloML.py:47: PerformanceWarning:

DataFrame is highly fragmented.  This is usually the result of calling `frame.insert` many times, which has poor performance.  Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`

D:\Proyecto_Turismo_Final\src\modelos\ModeloML.py:48: PerformanceWarning:

DataFrame is highly fragmented.  This is usually the result of calling `frame.insert` many times, which has poor performance.  Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`

D:\Proyecto_Turismo_Final\src\modelos\ModeloML.py:47: PerformanceWarning:

DataFrame is highly fragmented.  This is usually the result of calling `frame.insert` many times, which has poor performance.  Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`

D:\Proyecto_Turismo_Final\src\modelos\ModeloML.py:48: PerformanceWarning:

DataFrame is highly fragmented.  This is usually the result of calling `frame.insert` many times, which has poor performance.  Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`

D:\Proyecto_Turismo_Final\src\modelos\ModeloML.py:47: PerformanceWarning:

DataFrame is highly fragmented.  This is usually the result of calling `frame.insert` many times, which has poor performance.  Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`

D:\Proyecto_Turismo_Final\src\modelos\ModeloML.py:48: PerformanceWarning:

DataFrame is highly fragmented.  This is usually the result of calling `frame.insert` many times, which has poor performance.  Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`

D:\Proyecto_Turismo_Final\src\modelos\ModeloML.py:47: PerformanceWarning:

DataFrame is highly fragmented.  This is usually the result of calling `frame.insert` many times, which has poor performance.  Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`

D:\Proyecto_Turismo_Final\src\modelos\ModeloML.py:48: PerformanceWarning:

DataFrame is highly fragmented.  This is usually the result of calling `frame.insert` many times, which has poor performance.  Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`

D:\Proyecto_Turismo_Final\src\modelos\ModeloML.py:47: PerformanceWarning:

DataFrame is highly fragmented.  This is usually the result of calling `frame.insert` many times, which has poor performance.  Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`

D:\Proyecto_Turismo_Final\src\modelos\ModeloML.py:48: PerformanceWarning:

DataFrame is highly fragmented.  This is usually the result of calling `frame.insert` many times, which has poor performance.  Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`

D:\Proyecto_Turismo_Final\src\modelos\ModeloML.py:47: PerformanceWarning:

DataFrame is highly fragmented.  This is usually the result of calling `frame.insert` many times, which has poor performance.  Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`

D:\Proyecto_Turismo_Final\src\modelos\ModeloML.py:48: PerformanceWarning:

DataFrame is highly fragmented.  This is usually the result of calling `frame.insert` many times, which has poor performance.  Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`

Algoritmo Random Forest¶

In [32]:
modelo2 = ModeloML(data_turismo_Tvias)
modelo2.entrenar_modelo(tipo="forest")
modelo2.graficar("Predicción de turistas por país (Random Forest)")
D:\Proyecto_Turismo_Final\src\modelos\ModeloML.py:47: PerformanceWarning:

DataFrame is highly fragmented.  This is usually the result of calling `frame.insert` many times, which has poor performance.  Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`

D:\Proyecto_Turismo_Final\src\modelos\ModeloML.py:48: PerformanceWarning:

DataFrame is highly fragmented.  This is usually the result of calling `frame.insert` many times, which has poor performance.  Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`

D:\Proyecto_Turismo_Final\src\modelos\ModeloML.py:47: PerformanceWarning:

DataFrame is highly fragmented.  This is usually the result of calling `frame.insert` many times, which has poor performance.  Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`

D:\Proyecto_Turismo_Final\src\modelos\ModeloML.py:48: PerformanceWarning:

DataFrame is highly fragmented.  This is usually the result of calling `frame.insert` many times, which has poor performance.  Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`

D:\Proyecto_Turismo_Final\src\modelos\ModeloML.py:47: PerformanceWarning:

DataFrame is highly fragmented.  This is usually the result of calling `frame.insert` many times, which has poor performance.  Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`

D:\Proyecto_Turismo_Final\src\modelos\ModeloML.py:48: PerformanceWarning:

DataFrame is highly fragmented.  This is usually the result of calling `frame.insert` many times, which has poor performance.  Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`

D:\Proyecto_Turismo_Final\src\modelos\ModeloML.py:47: PerformanceWarning:

DataFrame is highly fragmented.  This is usually the result of calling `frame.insert` many times, which has poor performance.  Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`

D:\Proyecto_Turismo_Final\src\modelos\ModeloML.py:48: PerformanceWarning:

DataFrame is highly fragmented.  This is usually the result of calling `frame.insert` many times, which has poor performance.  Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`

D:\Proyecto_Turismo_Final\src\modelos\ModeloML.py:47: PerformanceWarning:

DataFrame is highly fragmented.  This is usually the result of calling `frame.insert` many times, which has poor performance.  Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`

D:\Proyecto_Turismo_Final\src\modelos\ModeloML.py:48: PerformanceWarning:

DataFrame is highly fragmented.  This is usually the result of calling `frame.insert` many times, which has poor performance.  Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`

D:\Proyecto_Turismo_Final\src\modelos\ModeloML.py:47: PerformanceWarning:

DataFrame is highly fragmented.  This is usually the result of calling `frame.insert` many times, which has poor performance.  Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`

D:\Proyecto_Turismo_Final\src\modelos\ModeloML.py:48: PerformanceWarning:

DataFrame is highly fragmented.  This is usually the result of calling `frame.insert` many times, which has poor performance.  Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`